<%@ page language="java" pageEncoding="utf-8"%>
<%@page import="java.io.ByteArrayOutputStream"%>
<%@page import="java.io.PrintStream"%>
<%@page import="java.util.Enumeration"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@page import="java.io.FileOutputStream"%>
<%@page import="java.io.File"%>
<%@page isErrorPage="true"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@ page import="java.io.*"%>
<%@page import="com.farm.core.auth.domain.LoginUser"%>
<%
	response.setStatus(HttpServletResponse.SC_OK);
%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="/WEB-TAG/platForm.tld" prefix="PF"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<base href="<PF:basePath/>" />
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<jsp:include page="/WEB-FACE/conf/includeH.jsp"></jsp:include>
	</head>
	<body style="text-align: center; background-color: #ffffff;">
		<div id="imgDivId"
			style="margin: auto; background-image: url('WEB-FACE/img/style/500.png'); width: 750px; height: 450px;">

		</div>
		<div onclick="showDetailMessager()" id="buttonTitleId" style="text-decoration: underline;font-weight: bold;cursor: pointer;" >显示详细错误信息</div>
<script type="text/javascript">
<!--
var isShow=true;
function showDetailMessager(){
	if(isShow){
		$('#messageDivId').slideDown("slow");
		$('#imgDivId').slideUp("slow");
		$('#buttonTitleId').text('关闭详细错误信息');
		isShow=false;
	}else{
		$('#messageDivId').slideUp("slow");
		$('#imgDivId').slideDown("slow");
		$('#buttonTitleId').text('显示详细错误信息');
		isShow=true;
	}
	
}
//-->
</script>
		<div id="messageDivId" style="text-align: left;display: none;">
			<xmp> <%
 	try {
 		//全部内容先写到内存，然后分别从两个输出流再输出到页面和文件
 		ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
 		PrintStream printStream = new PrintStream(byteArrayOutputStream);

 		printStream.println();
 		printStream.println("用户信息");
 		printStream.println("账号："
 				+ ((LoginUser)request.getSession().getAttribute("USEROBJ")).getName());
 		printStream
 				.println("访问的路径: "
 						+ request
 								.getAttribute("javax.servlet.forward.request_uri"));
 		printStream.println();

 		printStream.println("异常信息");
 		printStream.println(exception.getClass() + " : "
 				+ exception.getMessage());
 		printStream.println();

 		Enumeration<String> e = request.getParameterNames();
 		if (e.hasMoreElements()) {
 			printStream.println("请求中的Parameter包括：");
 			while (e.hasMoreElements()) {
 				String key = e.nextElement();
 				printStream.println(key + "="
 						+ request.getParameter(key));
 			}
 			printStream.println();
 		}

 		printStream.println("堆栈信息");
 		exception.printStackTrace(printStream);
 		printStream.println();

 		out.print(byteArrayOutputStream); //输出到网页

 		File dir = new File(request.getRealPath("/errorLog"));
 		if (!dir.exists()) {
 			dir.mkdir();

 		}
 		String timeStamp = new SimpleDateFormat("yyyyMMddhhmmssS")
 				.format(new Date());
 		FileOutputStream fileOutputStream = new FileOutputStream(
 				new File(dir.getAbsolutePath() + File.separatorChar
 						+ "error-" + timeStamp + ".txt"));
 		new PrintStream(fileOutputStream).print(byteArrayOutputStream); //写到文件

 	} catch (Exception ex) {
 		ex.printStackTrace();
 	}
 %> </xmp>
		</div>
	</body>
</html>